package bg.code.commons.plugin.ui.model;

import javax.swing.*;
import java.awt.*;

/**
 * @author 郑兴泉 956607644@qq.com
 * @data 2020/8/11
 * 描述：
 */
public class CustomCellEditor extends DefaultCellEditor {

    public CustomCellEditor(final JTextField textField) {
        super(textField);
    }

    public CustomCellEditor(final JCheckBox checkBox) {
        super(checkBox);
    }

    public CustomCellEditor(JComboBox comboBox) {
        super(comboBox);
    }


    @Override
    public boolean stopCellEditing() {
        // 获取当前单元格的编辑器组件
        Component comp = getComponent();
        // 获取当前单元格编辑器输入的值
        Object obj = getCellEditorValue();

        //返回 false（表示数据非法，不允许设置，无法保存）
        if (obj == null) {
            // 数据非法时，设置编辑器组件内的内容颜色为红色
            comp.setForeground(Color.RED);
            comp.setFocusable(true);
            return false;
        }
        // 数据合法时，设置编辑器组件内的内容颜色为黑色
        comp.setForeground(Color.BLACK);
        // 合法数据交给父类处理
        return super.stopCellEditing();
    }
}
